package com.yanfan.energy.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 订单详情表(OrderLineDetails)实体类
 *
 * @author makejava
 * @since 2023-01-09 10:01:18
 */
public class OrderLineDetails implements Serializable {
    private static final long serialVersionUID = -71615268853439302L;
    /**
     * 主键
     */
    private Long id;
    /**
     * 订单编号
     */
    private String number;
    /**
     * 订单公司名称
     */
    private String name;
    /**
     * 预计开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date beginDate;
    /**
     * 预计结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date endDate;
    /**
     * 预计用时
     */
    private String timeConsuming;
    /**
     * 订单金额
     */
    private Long orderAmount;
    /**
     * 状态（1、待处理，2、生产中，3、已完成）
     */
    private Integer type;
    /**
     * 实际开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date factBeginDate;
    /**
     * 实际结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date factEndDate;
    /**
     * 实际用时
     */
    private String timeFact;
    /**
     * 实际用时小时
     *
     * @author caijinkang
     * @date 2023/1/9 16:25
     * @param null
     * @return null
     */
    private Integer timeFactNumber;
    /**
     * 负责人
     */
    private String principal;
    /**
     * 联系方式
     */
    private String telephone;
    /**
     * 操作人
     *
     * @author caijinkang
     * @date 2023/1/30 14:21
     * @param null
     * @return null
     */
    private Integer operatorId;
    /**
     * 厂区id
     *
     * @date 2023/1/9 15:32
     * @param null
     * @return null
     */
    private Integer plantId;
    /**
     * 厂区名称
     *
     * @date 2023/1/9 15:43
     * @param null
     * @return null
     */
    private String plantName;
    /**
     * 车间id
     *
     * @date 2023/1/9 15:43
     * @param null
     * @return null
     */
    private Integer workshopId;
    /**
     * 车间名称
     *
     * @date 2023/1/9 15:44
     * @param null
     * @return null
     */
    private String workshopName;
    /**
     * 创建人
     */
    private String createdBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdDate;
    /**
     * 修改时间
     */
    private Date lastModifiedDate;
    /**
     * 订单进度
     */
    private Double rateOfProgress;
    /**
     * 人数
     *
     * @author caijinkang
     * @date 2023/2/10 15:12
     * @param null
     * @return null
     */
    private Integer peopleNumber;
    /**
     * 批次集合信息
     *
     * @author caijinkang
     * @date 2023/1/11 11:42
     * @param null
     * @return null
     */
    private List<Batches> batches;


    public OrderLineDetails() {
    }

    public OrderLineDetails(Long id, String number, String name, Date beginDate, Date endDate, String timeConsuming, Long orderAmount, Integer type, Date factBeginDate, Date factEndDate, String timeFact, Integer timeFactNumber, String principal, String telephone, Integer operatorId, Integer plantId, String plantName, Integer workshopId, String workshopName, String createdBy, Date createdDate, Date lastModifiedDate, Double rateOfProgress, Integer peopleNumber, List<Batches> batches) {
        this.id = id;
        this.number = number;
        this.name = name;
        this.beginDate = beginDate;
        this.endDate = endDate;
        this.timeConsuming = timeConsuming;
        this.orderAmount = orderAmount;
        this.type = type;
        this.factBeginDate = factBeginDate;
        this.factEndDate = factEndDate;
        this.timeFact = timeFact;
        this.timeFactNumber = timeFactNumber;
        this.principal = principal;
        this.telephone = telephone;
        this.operatorId = operatorId;
        this.plantId = plantId;
        this.plantName = plantName;
        this.workshopId = workshopId;
        this.workshopName = workshopName;
        this.createdBy = createdBy;
        this.createdDate = createdDate;
        this.lastModifiedDate = lastModifiedDate;
        this.rateOfProgress = rateOfProgress;
        this.peopleNumber = peopleNumber;
        this.batches = batches;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBeginDate() {
        return beginDate;
    }

    public void setBeginDate(Date beginDate) {
        this.beginDate = beginDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public String getTimeConsuming() {
        return timeConsuming;
    }

    public void setTimeConsuming(String timeConsuming) {
        this.timeConsuming = timeConsuming;
    }

    public Long getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(Long orderAmount) {
        this.orderAmount = orderAmount;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public Date getFactBeginDate() {
        return factBeginDate;
    }

    public void setFactBeginDate(Date factBeginDate) {
        this.factBeginDate = factBeginDate;
    }

    public Date getFactEndDate() {
        return factEndDate;
    }

    public void setFactEndDate(Date factEndDate) {
        this.factEndDate = factEndDate;
    }

    public String getTimeFact() {
        return timeFact;
    }

    public void setTimeFact(String timeFact) {
        this.timeFact = timeFact;
    }

    public String getPrincipal() {
        return principal;
    }

    public void setPrincipal(String principal) {
        this.principal = principal;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public Date getLastModifiedDate() {
        return lastModifiedDate;
    }

    public void setLastModifiedDate(Date lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate;
    }

    public Double getRateOfProgress() {
        return rateOfProgress;
    }

    public void setRateOfProgress(Double rateOfProgress) {
        this.rateOfProgress = rateOfProgress;
    }

    public Integer getPlantId() {
        return plantId;
    }

    public void setPlantId(Integer plantId) {
        this.plantId = plantId;
    }

    public String getPlantName() {
        return plantName;
    }

    public void setPlantName(String plantName) {
        this.plantName = plantName;
    }

    public Integer getWorkshopId() {
        return workshopId;
    }

    public void setWorkshopId(Integer workshopId) {
        this.workshopId = workshopId;
    }

    public String getWorkshopName() {
        return workshopName;
    }

    public void setWorkshopName(String workshopName) {
        this.workshopName = workshopName;
    }

    public Integer getTimeFactNumber() {
        return timeFactNumber;
    }

    public void setTimeFactNumber(Integer timeFactNumber) {
        this.timeFactNumber = timeFactNumber;
    }

    public List<Batches> getBatches() {
        return batches;
    }

    public void setBatches(List<Batches> batches) {
        this.batches = batches;
    }

    public Integer getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(Integer operatorId) {
        this.operatorId = operatorId;
    }

    public Integer getPeopleNumber() {
        return peopleNumber;
    }

    public void setPeopleNumber(Integer peopleNumber) {
        this.peopleNumber = peopleNumber;
    }

    @Override
    public String toString() {
        return "OrderLineDetails{" + "id=" + id + ", number='" + number + '\'' + ", name='" + name + '\'' + ", beginDate=" + beginDate + ", endDate=" + endDate + ", timeConsuming='" + timeConsuming + '\'' + ", orderAmount=" + orderAmount + ", type=" + type + ", factBeginDate=" + factBeginDate + ", factEndDate=" + factEndDate + ", timeFact='" + timeFact + '\'' + ", timeFactNumber=" + timeFactNumber + ", principal='" + principal + '\'' + ", telephone='" + telephone + '\'' + ", operatorId=" + operatorId + ", plantId=" + plantId + ", plantName='" + plantName + '\'' + ", workshopId=" + workshopId + ", workshopName='" + workshopName + '\'' + ", createdBy='" + createdBy + '\'' + ", createdDate=" + createdDate + ", lastModifiedDate=" + lastModifiedDate + ", rateOfProgress=" + rateOfProgress + ", peopleNumber=" + peopleNumber + ", batches=" + batches + '}';
    }
}

